home *** CD-ROM | disk | FTP | other *** search
- VERSION 4.00
- Begin VB.Form frmMain
- BorderStyle = 1 'Fixed Single
- ClientHeight = 3000
- ClientLeft = 3060
- ClientTop = 1560
- ClientWidth = 3180
- ClipControls = 0 'False
- ControlBox = 0 'False
- BeginProperty Font
- name = "MS Sans Serif"
- charset = 0
- weight = 700
- size = 8.25
- underline = 0 'False
- italic = 0 'False
- strikethrough = 0 'False
- EndProperty
- Height = 3345
- Icon = "SMALLCAP.frx":0000
- KeyPreview = -1 'True
- Left = 3030
- LinkTopic = "Form1"
- MaxButton = 0 'False
- MinButton = 0 'False
- ScaleHeight = 3000
- ScaleWidth = 3180
- Top = 1245
- Width = 3240
- Begin VB.CommandButton Command1
- Caption = "Quit"
- Height = 372
- Left = 1860
- TabIndex = 0
- Top = 2520
- Width = 972
- End
- Begin MessageBlaster.MsgBlaster MsgBlaster1
- Left = 240
- Top = 2460
- _version = 65536
- _extentx = 847
- _extenty = 847
- _stockprops = 0
- enabled = -1 'True
- voodoo = "SMALLCAP.frx":000C
- End
- Begin VB.Label Label3
- Caption = "Try using the system menu. You'll find the about box there."
- Height = 375
- Left = 120
- TabIndex = 3
- Top = 1980
- Width = 3015
- End
- Begin VB.Label Label2
- Caption = "How to create a small caption in Visual Basic"
- Height = 435
- Left = 120
- TabIndex = 2
- Top = 180
- Width = 3015
- End
- Begin VB.Label Label1
- Caption = $"SMALLCAP.frx":12DC
- Height = 1215
- Left = 120
- TabIndex = 1
- Top = 660
- Width = 3015
- End
- Attribute VB_Name = "frmMain"
- Attribute VB_Creatable = False
- Attribute VB_Exposed = False
- Option Explicit
- 'Virtual Key values
- Const VK_ESCAPE = &H1B
- 'System Metrics Constants
- Const SM_CYMENU = 15
- 'SysCommand, wParam values
- Const SC_MOVE = &HF010
- Const SC_CLOSE = &HF060
- 'Menu Function values
- Const MF_SEPARATOR = &H800
- Const MF_ENABLED = 0
- Const MF_STRING = 0
- Const MF_BmyPosITION = 400
- 'Menu ID's
- Const IDM_SYSMOVE = 101
- Const IDM_SYSCLOSE = 102
- Const IDM_ABOUT = 103
- 'MsgBlaster property values
- Const PREPROCESS = -1
- Const EATMESSAGE = 0
- Const POSTPROCESS = 1
- 'WM_NCHITTEST return values
- Const HTCLIENT = 1
- Const HTCAPTION = 2
- Const HTSYSMENU = 3
- Dim mFormTop%
- Dim mFormLeft%
- Dim mxPos%
- Dim myPos%
- Dim mCaptionColor&
- Dim mhSysMenu As Long
- Dim mScreenRect As RECT
- Dim mInSysMenu As Integer
- Private Sub Command1_Click()
- End
- End Sub
- Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
- If (KeyCode = 115) And (Shift = 4) Then End
- If (KeyCode = 18) And (Shift = 0) Then ShowSysMenu
- If (KeyCode = 27) And (Shift = 0) Then mInSysMenu = False
- End Sub
- Private Sub Form_Load()
- Dim rc%
- Me.ScaleMode = 3
- mCaptionColor& = GetSysColor(COLOR_ACTIVECAPTION) And &HFFFFFF
- mhSysMenu = CreatePopupMenu()
- rc% = AppendMenu(mhSysMenu, MF_ENABLED Or MF_STRING, IDM_SYSMOVE, "&Move")
- rc% = AppendMenu(mhSysMenu, MF_ENABLED Or MF_STRING, IDM_SYSCLOSE, "&Close Alt+F4")
- rc% = AppendMenu(mhSysMenu, MF_SEPARATOR, 0, "")
- rc% = AppendMenu(mhSysMenu, MF_ENABLED Or MF_STRING, IDM_ABOUT, "&About")
- mScreenRect.left = 0
- mScreenRect.right = Screen.Width / Screen.TwipsPerPixelX
- mScreenRect.top = 0
- mScreenRect.bottom = Screen.Height / Screen.TwipsPerPixelY
- Msgblaster1.hWndTarget = frmMain.hWnd
- Msgblaster1.AddMessage WM_CLOSE, POSTPROCESS
- Msgblaster1.AddMessage WM_COMMAND, POSTPROCESS
- Msgblaster1.AddMessage WM_NCACTIVATE, POSTPROCESS
- Msgblaster1.AddMessage WM_NCHITTEST, EATMESSAGE
- Msgblaster1.AddMessage WM_NCLBUTTONDBLCLK, EATMESSAGE
- Msgblaster1.AddMessage WM_NCLBUTTONDOWN, POSTPROCESS
- End Sub
- Private Sub Form_Paint()
- 'Paint caption background
- Line (0, -1)-Step(Me.Width, 9), mCaptionColor&, BF
- 'Horizontal line under caption
- Line (0, 8)-Step(Me.ScaleWidth, 0), QBColor(0)
- 'Vertical line beteen control menu and caption
- Line (10, 0)-Step(0, 8), QBColor(0)
- 'Background for control menu
- Line (0, 0)-Step(9, 7), QBColor(7), BF
- 'Box for bar in control menu
- Line (2, 2)-Step(5, 2), QBColor(0), B
- 'Line inside bar in control menu
- Line (3, 3)-Step(4, 0), QBColor(15)
- 'Vertical shadow on bar in control menu
- Line (8, 3)-Step(0, 3), QBColor(8)
- 'Horizontal shadow on bar in control menu
- Line (3, 5)-Step(5, 0), QBColor(8)
- End Sub
- Private Sub ShowSysMenu()
- Dim InPixels%
- Dim x%, y%, rc%
- InPixels = Me.ScaleWidth
- Me.ScaleMode = 1
- x = (left) \ (Me.ScaleWidth \ InPixels)
- y = (9 * Screen.TwipsPerPixelY + (Me.top + (Me.Height - Me.ScaleHeight - (Me.Width - Me.ScaleWidth)))) \ (Me.ScaleWidth \ InPixels)
- ScaleMode = 3
- If (y + (3 * GetSystemMetrics(SM_CYMENU))) > (Screen.Height / Screen.TwipsPerPixelY) Then
- rc% = TrackPopupMenu(mhSysMenu, 0, x, y - (3 * GetSystemMetrics(SM_CYMENU)) - 9, 0, Me.hWnd, mScreenRect)
- Else
- rc% = TrackPopupMenu(mhSysMenu, 0, x, y, 0, Me.hWnd, mScreenRect)
- End If
- mInSysMenu = True
- End Sub
- Private Sub Msgblaster1_Message(ByVal hWnd As Long, ByVal Msg As Long, wParam As Long, lParam As Long, nPassage As Integer, lReturnValue As Long)
- Dim rc&
- Select Case Msg
- Case WM_NCACTIVATE
- If wParam Then
- mCaptionColor = GetSysColor(COLOR_ACTIVECAPTION) And &HFFFFFF
- Else
- mCaptionColor = GetSysColor(COLOR_INACTIVECAPTION) And &HFFFFFF
- End If
- Me.Refresh
- Case WM_CLOSE
- End
- Case WM_NCHITTEST
- mxPos = (lParam And &HFFFF&)
- myPos = (lParam / 65536)
- mFormTop = top / Screen.TwipsPerPixelY
- mFormLeft = left / Screen.TwipsPerPixelX
- If (myPos - mFormTop < 10) And (mxPos - mFormLeft > 10) Then
- lReturnValue = HTCAPTION
- mInSysMenu = False
- ElseIf (myPos - mFormTop < 10) And (mxPos - mFormLeft < 10) Then
- lReturnValue = HTSYSMENU
- 'mInSysMenu = True
- Else
- lReturnValue = HTCLIENT
- mInSysMenu = False
- End If
- Case WM_NCLBUTTONDBLCLK
- If wParam = HTSYSMENU Then
- End
- End If
- Case WM_NCLBUTTONDOWN
- If wParam = HTSYSMENU Then
- If mInSysMenu Then
- mInSysMenu = False
- Exit Sub
- Else
- ShowSysMenu
- End If
- End If
- Case WM_COMMAND
- Select Case wParam
- Case IDM_SYSMOVE
- rc& = SendMessage(hWnd, WM_SYSCOMMAND, SC_MOVE, 0)
- Case IDM_SYSCLOSE
- End
- Case IDM_ABOUT
- frmAbout.Show vbModal
- End Select
- End Select
- End Sub
-